package edu.zut.cs.javaee.dream.module.web.spring.controller;

import com.alibaba.fastjson.JSON;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import edu.zut.cs.javaee.dream.base.web.spring.controller.GenericTreeController;
import edu.zut.cs.javaee.dream.module.domain.Module;
import edu.zut.cs.javaee.dream.module.service.ModuleManager;

import java.util.HashMap;

@RequestMapping("/module")
@RestController
public class ModuleController extends GenericTreeController<Module, Long, ModuleManager> {

	ModuleManager moduleManager;

	@Autowired
	public void setModuleManager(ModuleManager moduleManager) {
		this.moduleManager = moduleManager;
		this.manager = this.moduleManager;
		this.treeManager = this.moduleManager;
	}

	@ResponseBody
	@RequestMapping("/findAll/{page}/{pageSize}")
	public String findAllUser(@PathVariable("page") int page, @PathVariable("pageSize") int pageSize){
		Sort sort = Sort.by(Sort.Direction.DESC,"id");
		Pageable pageable = PageRequest.of(page,pageSize, sort);
		Page<Module> list = moduleManager.findAll(pageable);
		int number = list.getNumber();
		HashMap<String,Object> map = new HashMap<>();
		map.put("number",number);
		map.put("userList",list);
		//map集合转化为JSON字符串进行数据传输
		String res = JSON.toJSONString(map);
		return res;
	}

}
